/*
给定 N 个闭区间 [ai,bi]，请你在数轴上选择尽量少的点，使得每个区间内至少包含一个选出的点。

输出选择的点的最小数量。

位于区间端点上的点也算作区间内。

输入格式
第一行包含整数 N，表示区间数。

接下来 N 行，每行包含两个整数 ai,bi，表示一个区间的两个端点。

输出格式
输出一个整数，表示所需的点的最小数量。

数据范围
1≤N≤105,
−109≤ai≤bi≤109
输入样例：
3
-1 1
2 4
3 5
输出样例：
2
*/
#include <iostream>
#include <algorithm>
using namespace std;
typedef pair<int, int> PII;
const int N = 1e5 + 10;
int n, res;
PII g[N];
bool my_sort(PII a, PII b)
{
    return a.second < b.second;
}
int main(int argc, char const *argv[])
{
    cin >> n;
    for (int i = 0; i < n; i++)
        cin >> g[i].first >> g[i].second;
    sort(g, g + n, my_sort);
    for (int i = 0; i < n;)
    {
        res++;
        int r = g[i].second;
        int j = i + 1;
        while (r >= g[j].first && r <= g[j].second)
            j++;
        i = j;
    }
    cout << res << endl;
    return 0;
}
